package Model.Mapper;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.thoughtworks.xstream.XStream;

import Model.Comentario;
import Model.Abstract.MapperAbstract;
import Model.Interface.Model;

/**
 * Classe responsavel por salvar o Comentario no bd.
 * 
 * @author Grupo I
 * 
 */
public class ComentarioMapper extends MapperAbstract {

	/**
	 * Preenche o model
	 */
	@Override
	protected Comentario fillModel(File file) throws FileNotFoundException {

		XStream xstream = new XStream();

		if (file.exists() && file.isFile()) {
			try {
				Comentario model = (Comentario) xstream.fromXML(new FileReader(
						file));
				return model;
			} catch (FileNotFoundException e) {
				throw e;
			}
		}

		return null;
	}

	/**
	 * Retorna o comentario a partir do seu id.
	 * 
	 * @param o
	 *            id que sera usado na pesquisa
	 * @return o comentario;
	 */
	public Comentario find(String id) throws FileNotFoundException {
		return (Comentario) super.find(id);
	}

	/**
	 * Retorna uma lista contendo todos os Comentarios
	 * 
	 * @return uma lista contendo todos os comentarios
	 * @throws FileNotFoundException
	 */
	public List<Comentario> fetchAll(String class_name)
			throws FileNotFoundException {
		List<Comentario> resultado = new ArrayList<Comentario>();
		List<Model> registros = super.fetchAllAux(class_name, new BlogMapper());
		Iterator<Model> i = registros.iterator();
		while (i.hasNext()) {
			resultado.add((Comentario) i.next());
		}

		return resultado;
	}
}
